package cn.ly.net.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * udp洗衣发送数据
 * a：创建接收端的socket对象
 * b：创建一个数据包，接收数据的容器
 * c：调用socket对象的接收方法接收数据
 * d：解析数据，并显示
 * e：释放资源
 * @author liuyu
 *
 */

public class ReceiveDemo {
	
	public static void main(String[] args) throws Exception {
		//创建接收数据的socket对象
		//DatagramSocket(int prot)
		DatagramSocket ds = new DatagramSocket(10086);
		//创建一个数据包，接收数据容器
		//DatagramPacket(byte[] buf, int length) 
		byte[] bys = new byte[1472];
		int length = bys.length;
		DatagramPacket dp = new DatagramPacket(bys,length);
		
		//调用socket对象的接收方法接收数据
		ds.receive(dp);//阻塞,等待接收数据
		
		//获取对方的ip
		InetAddress address = dp.getAddress();
		String ip = address.getHostAddress();
		
		//解析数据，并显示
		//byte[] getData()  , int getLength()  
		byte[] bys2 = dp.getData();
		int length2 = bys2.length;
		String content = new String(bys2,0,length2);
		
		
		System.out.println(ip + " : " + content);
		//System.out.println(ip + " : " + bys2.toString());
		
		
		//释放资源
		ds.close();
		
	}

}
